﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace QLNS
{
    public partial class frmNhanvien : Form
    {
        public frmNhanvien()
        {
            InitializeComponent();
        }
        public SqlConnection getConnect()
        {
            return new SqlConnection(@"Data Source=THANGVUONG\SQLEXPRESS;Initial Catalog=Quanlynhansu;Integrated Security=True");
        }
        public DataTable NhanVien_SelectAll()
        {
            string sql = "select *from NhanVien";
            SqlConnection con = getConnect();
            SqlDataAdapter adap = new SqlDataAdapter(sql, con);
            DataTable dt = new DataTable();
            adap.Fill(dt);
            return dt;
        }
        public DataTable Nhanvien_Search(Nhanvien nv)
        {
            SqlConnection conn = getConnect();
            conn.Open();
            SqlCommand cmd = new SqlCommand("Nhanvien_Search", conn);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add(new SqlParameter("@id", nv.MaNV));
            SqlDataAdapter adap = new SqlDataAdapter(cmd);
            DataTable dt = new DataTable();
            adap.Fill(dt);
            conn.Close();
            return dt;
        }
        public void Nhanvien_Insert(Nhanvien NV)
        {
            SqlConnection Connect = getConnect();
            Connect.Open();
            SqlCommand cmd = new SqlCommand("NhanVien_Insert", Connect);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add(new SqlParameter("@MaNv", NV.MaNV));
            cmd.Parameters.Add(new SqlParameter("@Hoten", NV.Hoten));
            cmd.Parameters.Add(new SqlParameter("@NS", NV.NS));
            cmd.Parameters.Add(new SqlParameter("@Diachi", NV.DiaChi));
            cmd.Parameters.Add(new SqlParameter("@SDT", NV.SDT));
            cmd.Parameters.Add(new SqlParameter("@luong", NV.Luong));
            cmd.Parameters.Add(new SqlParameter("@GT", NV.GT));
            cmd.Parameters.Add(new SqlParameter("@CMND", NV.CMND));
            cmd.Parameters.Add(new SqlParameter("@MaCV", NV.Macv));
            cmd.Parameters.Add(new SqlParameter("@Maphong", NV.Maphong));
            cmd.Parameters.Add(new SqlParameter("@Nvl", NV.Nvl));
            cmd.ExecuteNonQuery();
            Connect.Close();
        }
        public void NhanVien_Update(Nhanvien NV)
        {
            SqlConnection Connect = getConnect();
            Connect.Open();
            SqlCommand cmd = new SqlCommand("Nhanvien_Update", Connect);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add(new SqlParameter("@MaNv", NV.MaNV));
            cmd.Parameters.Add(new SqlParameter("@Hoten", NV.Hoten));
            cmd.Parameters.Add(new SqlParameter("@NS", NV.NS));
            cmd.Parameters.Add(new SqlParameter("@Diachi", NV.DiaChi));
            cmd.Parameters.Add(new SqlParameter("@SDT", NV.SDT));
            cmd.Parameters.Add(new SqlParameter("@luong", NV.Luong));
            cmd.Parameters.Add(new SqlParameter("@GT", NV.GT));
            cmd.Parameters.Add(new SqlParameter("@CMND", NV.CMND));
            cmd.Parameters.Add(new SqlParameter("@MaCV", NV.Macv));
            cmd.Parameters.Add(new SqlParameter("@Maphong", NV.Maphong));
            cmd.Parameters.Add(new SqlParameter("@Nvl", NV.Nvl));
            cmd.ExecuteNonQuery();
            Connect.Close();
        }
        public void NhanVien_Delete(string MaNv)
        {

            SqlConnection Connect = getConnect();
            Connect.Open();
            SqlCommand cmd = new SqlCommand("NhanVien_Delete", Connect);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add(new SqlParameter("@MaNv", MaNv));
            cmd.ExecuteNonQuery();
            Connect.Close();
        }

        private void frmNhanvien_Load(object sender, EventArgs e)
        {
            // TODO: This line of code loads data into the 'quanlynhansuDataSet1.PhongBan' table. You can move, or remove it, as needed.
            this.phongBanTableAdapter.Fill(this.quanlynhansuDataSet1.PhongBan);
            // TODO: This line of code loads data into the 'quanlynhansuDataSet.ChucVu' table. You can move, or remove it, as needed.
            this.chucVuTableAdapter.Fill(this.quanlynhansuDataSet.ChucVu);
            grvNhanvien.DataSource = NhanVien_SelectAll();
        }

        private void btThem_Click(object sender, EventArgs e)
        {
            #region
            if (txtMaNv.Text.Trim().Equals(""))
            {
                MessageBox.Show("Bạn phải nhập mã nhân viên");
                txtMaNv.Focus();
                return;
            }
            if (txtHoten.Text.Trim().Equals(""))
            {
                MessageBox.Show("Bạn phải nhập họ tên");
                txtHoten.Focus();
                return;
            }
            if (txtGioitinh.Text.Trim().Equals(""))
            {
                MessageBox.Show("Bạn phải nhập giới tính");
                txtGioitinh.Focus();
                return;
            }
            if (txtDiachi.Text.Trim().Equals(""))
            {
                MessageBox.Show("Bạn phải nhập địa chỉ");
                txtDiachi.Focus();
                return;
            }
            if (txtSoDt.Text.Trim().Equals(""))
            {
                MessageBox.Show("Bạn phải nhập mã Sdt");
                txtSoDt.Focus();
                return;
            }
            if (txtCMND.Text.Trim().Equals(""))
            {
                MessageBox.Show("Bạn phải nhập CMND");
                txtCMND.Focus();
                return;
            }
            if (txtLuong.Text.Trim().Equals(""))
            {
                MessageBox.Show("Bạn phải lương");
                txtLuong.Focus();
                return;
            }
            #endregion
            Nhanvien NV = new Nhanvien();
            NV.CMND = txtCMND.Text;
            NV.DiaChi = txtDiachi.Text;
            NV.GT = txtGioitinh.Text;
            NV.Hoten = txtHoten.Text;
            NV.Luong = int.Parse(txtLuong.Text);
            NV.MaNV = txtMaNv.Text;
            NV.NS = dateNS.Value;
            NV.SDT = txtSoDt.Text;
            NV.Macv = cbMacv.Text;
            NV.Maphong = cbMaphong.Text;
            NV.Nvl = dateNvl.Value;

            try
            {
                Nhanvien_Insert(NV);
                grvNhanvien.DataSource = NhanVien_SelectAll();
            }
            catch
            {
                MessageBox.Show("Chưa thêm được");
            }
        }

        private void btSua_Click(object sender, EventArgs e)
        {
            #region
            if (txtMaNv.Text.Trim().Equals(""))
            {
                MessageBox.Show("Bạn phải nhập mã nhân viên");
                txtMaNv.Focus();
                return;
            }
            if (txtHoten.Text.Trim().Equals(""))
            {
                MessageBox.Show("Bạn phải nhập họ tên");
                txtHoten.Focus();
                return;
            }
            if (txtGioitinh.Text.Trim().Equals(""))
            {
                MessageBox.Show("Bạn phải nhập giới tính");
                txtGioitinh.Focus();
                return;
            }
            if (txtDiachi.Text.Trim().Equals(""))
            {
                MessageBox.Show("Bạn phải nhập địa chỉ");
                txtDiachi.Focus();
                return;
            }
            if (txtSoDt.Text.Trim().Equals(""))
            {
                MessageBox.Show("Bạn phải nhập mã Sdt");
                txtSoDt.Focus();
                return;
            }
            if (txtCMND.Text.Trim().Equals(""))
            {
                MessageBox.Show("Bạn phải nhập CMND");
                txtCMND.Focus();
                return;
            }
            if (txtLuong.Text.Trim().Equals(""))
            {
                MessageBox.Show("Bạn phải lương");
                txtLuong.Focus();
                return;
            }
            #endregion
            Nhanvien NV = new Nhanvien();
            NV.CMND = txtCMND.Text;
            NV.DiaChi = txtDiachi.Text;
            NV.GT = txtGioitinh.Text;
            NV.Hoten = txtHoten.Text;
            NV.Luong = int.Parse(txtLuong.Text);
            NV.MaNV = txtMaNv.Text;
            NV.NS = dateNS.Value;
            NV.SDT = txtSoDt.Text;
            NV.Macv = cbMacv.Text;
            NV.Maphong = cbMaphong.Text;
            NV.Nvl = dateNvl.Value;

            try
            {
                NhanVien_Update(NV);
                grvNhanvien.DataSource = NhanVien_SelectAll();
            }
            catch
            {
                MessageBox.Show("Chưa sửa được");
            }
        }

        private void btXoa_Click(object sender, EventArgs e)
        {
            if (txtMaNv.Text.Trim().Equals(""))
            {
                MessageBox.Show("Bạn phải nhập mã nhân viên");
                txtMaNv.Focus();
                return;
            }
            NhanVien_Delete(txtMaNv.Text);
            grvNhanvien.DataSource = NhanVien_SelectAll();
        }

        private void txtSearch_TextChanged(object sender, EventArgs e)
        {
            Nhanvien NV=new Nhanvien();
            NV.MaNV=txtSearch.Text;
            grvNhanvien.DataSource = Nhanvien_Search(NV);
        }

        private void grvNhanvien_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            int RowIndex = e.RowIndex;
            txtMaNv.Text = grvNhanvien.Rows[RowIndex].Cells[0].Value.ToString();
            txtHoten.Text = grvNhanvien.Rows[RowIndex].Cells[1].Value.ToString();
            dateNS.Value = DateTime.Parse(grvNhanvien.Rows[RowIndex].Cells[2].Value.ToString());
            txtGioitinh.Text = grvNhanvien.Rows[RowIndex].Cells[3].Value.ToString();
            txtDiachi.Text = grvNhanvien.Rows[RowIndex].Cells[4].Value.ToString();
            txtSoDt.Text = grvNhanvien.Rows[RowIndex].Cells[5].Value.ToString();
            txtCMND.Text = grvNhanvien.Rows[RowIndex].Cells[6].Value.ToString();
            txtLuong.Text = grvNhanvien.Rows[RowIndex].Cells[7].Value.ToString();
            cbMacv.Text = grvNhanvien.Rows[RowIndex].Cells[8].Value.ToString();
            cbMaphong.Text = grvNhanvien.Rows[RowIndex].Cells[9].Value.ToString();
            dateNvl.Value = DateTime.Parse(grvNhanvien.Rows[RowIndex].Cells[10].Value.ToString());
        }

        private void btThoat_Click(object sender, EventArgs e)
        {
            this.Close();
        }
        
    }
}
